<?php

/**
  +------------------------------------------------------------------------------
 * 邮箱发送
  +------------------------------------------------------------------------------
 * @param string $tomail 接收邮件的邮箱
 * @param string $title 邮件标题，不要太长，太长接收到的邮件标题可能出现乱码
 * @param string $content 邮件内容
 * @return boolean true表示发送成功，false表示发送失败
  +------------------------------------------------------------------------------
 * 使用方法
  //发送一封邮件
  ExtendsYspSendmail::$web_name = '网站名称';
  ExtendsYspSendmail::$smtp = 'smtp.163.com';
  ExtendsYspSendmail::$send_mail = '发送者的邮箱';
  $email_user = explode('@', ExtendsYspSendmail::$send_mail);
  ExtendsYspSendmail::$email_username = $email_user[0];
  ExtendsYspSendmail::$email_password = '邮箱密码';
  ExtendsYspSendmail::$re_email = '收件人回复时调用的邮箱';

  //$content = file_get_contents(绝对路径 . '邮件模板页面.html');
  //邮件的内容，比如，邮件模板内容如下：
  $content = <<< HTML
  <dl>
  <dt>标题</dt>
  <dd><%{title}%></dd>
  <dt>内容</dt>
  <dd><%{content}%></dd>
  </dl>
  HTML;

  $content = str_replace('<%{title}%>', '这是标题', $content);
  $content = str_replace('<%{content}%>', '这是内容', $content);
  ExtendsYspSendmail::sendmail('接收者的邮箱', '测试邮件（QQ邮件最好不要超过8个汉字，否则可能出现乱码）', $content);
  +------------------------------------------------------------------------------
 */
class ExtendsYspSendmail {

    static public $web_name = '';
    static public $charset = 'UTF-8';
    static public $smtp = '';
    static public $mail_port = 25;
    static public $send_mail = '';
    static public $email_username = '';
    static public $email_password = '';
    static public $re_email = '';

    /**
     * 发邮件参数配置
     * @param string $tomail 接收者邮箱
     * @param string $title 邮件标题
     * @param string $content 邮件内容
     * @param string $replay_email 接收者邮箱
     * @return boolean true|false 真或假
     */
    static public function sendmail($tomail, $title, $content) {
        require_once(YSP_ROOT_BASE . "/extends/phpmailer/class.phpmailer.php");
        require_once(YSP_ROOT_BASE . "/extends/phpmailer/class.smtp.php");

        $mail = new PHPMailer();     //得到一个PHPMailer实例

        $from_name = self::$web_name;
        $mail->CharSet = self::$charset;      //设置采用UTF-8中文编码
        $mail->IsSMTP();       //设置采用SMTP方式发送邮件
        $mail->Host = self::$smtp;    //设置邮件服务器的地址
        $mail->Port = self::$mail_port;             //设置邮件服务器的端口，默认为25

        $mail->From = self::$send_mail; //设置发件人的邮箱地址
        $mail->FromName = $from_name;                       //设置发件人的姓名
        $mail->SMTPAuth = true;     //设置SMTP是否需要密码验证，true表示需要

        $mail->Username = self::$email_username;

        $mail->Password = self::$email_password;
        $mail->Subject = $title;            //设置邮件的标题

        $mail->AltBody = $from_name;                                //邮件名称 optional, comment out and test

        $mail->MsgHTML($content);

        $mail->Body = $content;    //正文内容

        $mail->IsHTML(true);                                        //设置内容是否为html类型
        $mail->WordWrap = 64;                                 //设置每行的字符数
        $mail->AddReplyTo(self::$re_email, self::$web_name);     //设置回复的收件人的地址


        $mail->AddAddress($tomail, $from_name);     //设置收件的地址
        if (!$mail->Send()) {                    //发送邮件
            return false;
        } else {
            return true;
        }
    }

}